WPA2の脆弱性「KRACKs」についてまとめてみた
森永です。
今日起きたらセキュリティクラスタがWPA2の脆弱性でざわついてて焦りました。
先ほど詳細なレポートがでましたので内容をまとめます。
だいたい分かればいい人は概要だけ読んで下さい。
本ブログの内容について暗号の専門家による監修はありません。誤った表現や誤解を招く表現があればお申し付け下さい。
概要
報告者
ベルギーにあるルーヴェン・カトリック大学でネットワークや無線のセキュリティなどを研究している博士研究員であるMathy Vanhoef氏
内容
- Wi-Fi Protected Access 2(WPA2)の脆弱性が見つかった(WPA1も対象)
- 攻撃手法の特徴から「Key Reinstallation AttaCKs(KRACKs)」と呼ばれる
- WPA2というプロトコルの脆弱性なので、特定の製品(OS、デバイスなど)に関係なく影響がある
- 攻撃者は物理的にWi-Fiに接続できる環境にいる必要がある
- この攻撃手法を使うと暗号化された情報を読み取ることが出来る(WPA-TKIP、AES-CCMP、GCMP問わず)
- WPA-TKIPまたはGCMPで暗号化しているとパケットを偽造して注入まで出来る
- LinuxとAndroidは特に注意
- Wi-Fi接続に「wpa_supplicant」というツールを使用しており、このツールが今回の攻撃に非常に弱い
- HTTPSなど別の仕組みで暗号化していればひとまず安心
- ブラウザ以外のソフトウェアや一部アプリでHTTPSをバイパスする脆弱性が確認されているので対処は必要
- Wi-Fiのパスワードを読み取れるわけではない
- 言い換えればパスワード変更で対応は出来ない
- 後方互換性のあるパッチで対応可能
- クライアントを狙った攻撃なのでクライアントだけ対応すれば基本的に大丈夫
- PCやスマートフォンのOS、ルーターのファームウェア、その他Wi-Fiを使用している製品のパッチ適用推奨
- パッチを当てるまでWEPを使うようなことはせず、WPA2を使い続けるほうがよい
影響するCVE
脆弱性の対応状況は以下のCVEを抑えておくと良いでしょう。
- CVE-2017-13077: Reinstallation of the pairwise encryption key (PTK-TK) in the 4-way handshake.¥
- CVE-2017-13078: Reinstallation of the group key (GTK) in the 4-way handshake.
- CVE-2017-13079: Reinstallation of the integrity group key (IGTK) in the 4-way handshake.
- CVE-2017-13080: Reinstallation of the group key (GTK) in the group key handshake.
- CVE-2017-13081: Reinstallation of the integrity group key (IGTK) in the group key handshake.
- CVE-2017-13082: Accepting a retransmitted Fast BSS Transition (FT) Reassociation Request and reinstalling the pairwise encryption key (PTK-TK) while processing it.
- CVE-2017-13084: Reinstallation of the STK key in the PeerKey handshake.
- CVE-2017-13086: reinstallation of the Tunneled Direct-Link Setup (TDLS) PeerKey (TPK) key in the TDLS handshake.
- CVE-2017-13087: reinstallation of the group key (GTK) when processing a Wireless Network Management (WNM) Sleep Mode Response frame.
- CVE-2017-13088: reinstallation of the integrity group key (IGTK) when processing a Wireless Network Management (WNM) Sleep Mode Response frame.
詳細
攻撃方法
- WPA2の4ウェイハンドシェイクに対する攻撃
- 4ウェイハンドシェイクはクライアントとアクセスポイント(AP)間で暗号化に使用するGroup Transient Key(GTK)を作成するための通信
- 4ウェイハンドシェイクを使用するネットワークは全て今回の攻撃手法の影響を受ける可能性がある
- APはメッセージ4でAckが来ないとメッセージ3を再送する(これは正常な動作)
- クライアントはメッセージ3を受信する度に同じ暗号化キーを再インストールする
- その際にNonce(number used onceの略で一度だけ使われるべきランダムな文字列)やリプレイカウンタが0にリセットされる
- メッセージ3を収集してリプレイ攻撃を仕掛けることでNonceのリセットを強制できる
- Nonceの再利用を強制できるのでパケットの復号化やデータ注入が出来るようになる
- 暗号化プロトコルによって復号化だけ出来たり(AES-CCMP)、データの注入なども出来たり(WPA-TRIP,GCMP)する
最後に
根本原因は「ハンドシェイクでのメッセージの再送信で鍵が再インストールされ、Nonceがリセットされる」ことのようです。
クライアント側のアップデートで回避可能ということで、WPA2というプロトコル自体が使えなくなるようなことはなさそうです。
今後は各ベンダが出すセキュリティパッチを注視していく必要がありそうです。